solving congruences